<?php
/**
 * 位置数据（poi）管理
 * Created by PhpStorm.
 * User: ADKi
 * Date: 2016/8/26 0026
 * Time: 14:45
 * @author ADKi
 * @url http://lbsyun.baidu.com/index.php?title=lbscloud/api/geodata#.E4.BD.8D.E7.BD.AE.E6.95.B0.E6.8D.AE.EF.BC.88poi.EF.BC.89.E7.AE.A1.E7.90.86
 */

class poi
{
    /**
     * 创建数据（create poi）接口
     * POST请求
     * */
    private $_create_poi = 'http://api.map.baidu.com/geodata/v3/poi/create';

    /**
     * 查询指定条件的数据（poi）列表接口
     * GET请求
     * */
    private $_list_poi = 'http://api.map.baidu.com/geodata/v3/poi/list';

    /**
     * 查询指定id的数据（poi）详情接口
     * GET请求
     * */
    private $_detail_poi = 'http://api.map.baidu.com/geodata/v3/poi/detail';

    /**
     * 修改数据（poi）接口
     * POST请求
     * */
    private $_update_poi = 'http://api.map.baidu.com/geodata/v3/poi/update';

    /**
     * 删除数据（poi）接口（支持批量）
     * POST请求
     * */
    private $_delete_poi = 'http://api.map.baidu.com/geodata/v3/poi/delete';

    /**
     * 批量上传数据（post pois csv file）接口
     * POST请求
     * 注意：该接口每日限调用25次。若对数据的实时性要求较高，建议通过“创建数据（create poi）接口”实现。
     * */

    private $_upload_poi = 'http://api.map.baidu.com/geodata/v3/poi/upload';

    /**
     * 批量上传进度查询接口（支持进度查询和上传失败的poi）
     * GET请求
     * */
    private $_listimportdata_poi = 'http://api.map.baidu.com/geodata/v3/job/listimportdata';

    /**
     * 创建数据
     * @param $send_data array
     * @return object
     * */
    public function PostCreate($send_data)
    {
        //初始化
        $form = curl_init();
        curl_setopt($form, CURLOPT_URL, $this->_create_poi); //请求地址
        curl_setopt($form, CURLOPT_HEADER, false);  //没有头
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        curl_setopt($form, CURLOPT_POST, true); //提交方式
        curl_setopt($form, CURLOPT_POSTFIELDS, $send_data); //提交数据
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }

    /**
     * 查询指定条件的数据
     * @param $send_data array
     * @return object
     * */
    public function GetList($send_data)
    {
        $url = $this->_list_poi.'?'.http_build_query($send_data);
        $form = curl_init((string)$url);
        curl_setopt($form, CURLOPT_HEADER, false);
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }

    /**
     * 查询指定id的数据（poi）详情接口
     * @param $send_data array
     * @return object
     * */
    public function GetDetail($send_data)
    {
        $url = $this->_detail_poi.'?'.http_build_query($send_data);
        $form = curl_init((string)$url);
        curl_setopt($form, CURLOPT_HEADER, false);
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }

    /**
     * 修改数据（poi）接口
     * @param $send_data array
     * @return object
     * */
    public function PostUpdate($send_data)
    {
        //初始化
        $form = curl_init();
        curl_setopt($form, CURLOPT_URL, $this->_update_poi); //请求地址
        curl_setopt($form, CURLOPT_HEADER, false);  //没有头
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        curl_setopt($form, CURLOPT_POST, true); //提交方式
        curl_setopt($form, CURLOPT_POSTFIELDS, $send_data); //提交数据
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }

    /**
     * 删除数据（poi）接口（支持批量）
     * @param $send_data array
     * @return object
     * */
    public function PostDelete($send_data)
    {
        //初始化
        $form = curl_init();
        curl_setopt($form, CURLOPT_URL, $this->_delete_poi); //请求地址
        curl_setopt($form, CURLOPT_HEADER, false);  //没有头
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        curl_setopt($form, CURLOPT_POST, true); //提交方式
        curl_setopt($form, CURLOPT_POSTFIELDS, $send_data); //提交数据
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }

    /**
     * 批量上传数据（post pois csv file）接口
     * @param $send_data array
     * @return object
     * */
    public function PostUpload($send_data)
    {
        //初始化
        $form = curl_init();
        curl_setopt($form, CURLOPT_URL, $this->_upload_poi); //请求地址
        curl_setopt($form, CURLOPT_HEADER, false);  //没有头
        curl_setopt($form, CURLOPT_RETURNTRANSFER, true); //不直接输出到页面
        curl_setopt($form, CURLOPT_POST, true); //提交方式
        curl_setopt($form, CURLOPT_POSTFIELDS, $send_data); //提交数据
        $result = curl_exec($form);
        curl_close($form);
        return json_decode($result);
    }
}